package org.minbox.framework.command.execute.shell;

import java.util.LinkedList;
import java.util.List;

/**
 * {@link Shell} Abstract Implement
 *
 * @author 恒宇少年
 */
public abstract class AbstractShell implements Shell {
    /**
     * Shell commands for different operating systems
     */
    private String shellCommand;
    /**
     * List of parameters when executing shell commands on different operating systems
     */
    private List<String> shellArgs = new LinkedList<>();

    /**
     * Set shell command
     *
     * @param shellCommand {@link #shellCommand}
     */
    protected void setShellCommand(String shellCommand) {
        this.shellCommand = shellCommand;
    }

    /**
     * Set shell args
     *
     * @param shellArgs {@link #shellArgs}
     */
    protected void setShellArgs(List<String> shellArgs) {
        this.shellArgs = shellArgs;
    }
    
    @Override
    public String getShellCommand() {
        return this.shellCommand;
    }

    @Override
    public List<String> getShellArgs() {
        return this.shellArgs;
    }
}
